package org.zxyj.core.service;

import java.util.List;
import java.util.Map;

import org.zxyj.core.entity.Pagination;

/**
 * @author zhaoyong
 * @version 2016年2月18日
 */
public interface IBaseService<T> {

	/**
	 * 根据条件查询实体数据
	 * 
	 * @param criteria
	 * @return List<T>
	 */
	List<T> listEntities(Map<String, Object> criteria);

	/**
	 * 分页查询实体数据
	 * 
	 * @param criteria
	 * @param pagination
	 * @return Pagination
	 */
	Pagination listEntities(Map<String, Object> criteria, Pagination pagination);

	/**
	 * 查询单条数据
	 * 
	 * @param criteria
	 * @return T
	 */
	T findEntity(Map<String, Object> criteria);

	/**
	 * 持久化实体数据
	 * 
	 * @param entity
	 */
	void persistentEntity(T entity);

	/**
	 * 删除实体
	 * 
	 * @param criteria
	 */
	void deleteEntity(Map<String, Object> criteria);

}